/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.cesupa.cabcc.facade;

import br.cesupa.cabcc.dao.MembroDAO;
import br.cesupa.cabcc.entity.Membro;
import br.cesupa.cabcc.factory.FactoryDAO;
import br.cesupa.cabcc.util.FacesMessages;
import br.cesupa.cabcc.util.GeraSenha;
import java.util.List;

/**
 *
 * @author yuri
 */
public class MembroFacade {

    private static MembroDAO mDAO = FactoryDAO.getMembroSUDI();
    private static List<Membro> listMembros = getAllMembros();
    /**
     * @return the listMembros
     */
    public static List<Membro> getListMembros() {
        return listMembros;
    }

    private static List<Membro> getAllMembros(){
        List<Membro> aux = mDAO.getAll();
        return aux;
    }
    
    private static void atualizaListMembros(){
        listMembros = getAllMembros();
    }

    public static Membro cadastrarMembro(Membro membro){
        Membro m = mDAO.getByLogin(membro.getLogin());
        if (membro.getSenha().length() < 6) {
            FacesMessages.addAlertMessage("o campo senha não pode conter menos que 6 caracteres.");
        } else if (m == null) {
            String senha = membro.getSenha();
            membro.setSenha(GeraSenha.criptografaSenha(membro.getSenha()));

            mDAO.salvar(membro);
            membro.setSenha(senha);
        } else {
            FacesMessages.addAlertMessage("já exite um usuário com este login.");
            return null;
        }
        membro =  mDAO.getByLogin(membro.getLogin());
        if(membro!=null){
            atualizaListMembros();
        }
        return membro;
    }

    public static void atualizarMembro(Membro membro) {
        mDAO.atualizar(membro);
        atualizaListMembros();
    }

    public static void excluirMembro(Membro membro) {
        mDAO.remover(membro);
        atualizaListMembros();
    }
}
